# 用户配置文件
# 生产环境中应将此文件加入.gitignore，避免敏感信息泄露

import requests
import json

class UserConfig:
    """用户配置类"""
    
    # 默认配置（可被具体用户配置覆盖）
    DEFAULT_CONFIG = {
        'bt_url': 'http://1.14.103.227:8888',  # 宝塔链接
        'bt_key': 'YXb5OfgP2Cplav3xmws4pbMVzjTW3rYv',  # 宝塔的API Key
        'bt_fife': '/www/wwwroot/aa.com/',  # 要开通的网站目录
        'bt_web': 'aa.com',  # 网站域名
        'web_size': '800',  # 网站空间大小(MB)
        'sql_size': '500',  # 数据库空间大小(MB)
        'traffic_size': '500',  # 流量大小(MB)
        'siteId': 1,  # 站点ID
        'sql_pwd': '123456'  # 数据库密码
    }
    
    # 用户特定配置字典
    USER_CONFIGS = {
        'admin': {
            'password': '123456',
            'config': DEFAULT_CONFIG.copy()
        },
        # 可以添加更多用户
        # 'user2': {
        #     'password': 'password2',
        #     'config': {
        #         'bt_url': 'http://另一个宝塔地址:8888',
        #         'bt_key': '另一个API Key',
        #         # ... 其他配置
        #     }
        # }
    }
    
    # 配置API地址（可以是外部服务）
    CONFIG_API_URL = None  # 例如: 'http://config-service.example.com/api/config'
    
    @classmethod
    def get_user_config(cls, username):
        """获取用户配置"""
        # 如果配置了外部API，则优先从API获取配置
        if cls.CONFIG_API_URL:
            try:
                response = requests.get(f"{cls.CONFIG_API_URL}/{username}")
                if response.status_code == 200:
                    api_config = response.json()
                    # 合并API配置和默认配置，API配置优先
                    config = cls.DEFAULT_CONFIG.copy()
                    config.update(api_config)
                    return config
            except Exception as e:
                # 如果API调用失败，回退到本地配置
                pass
        
        # 从本地配置获取
        return cls.USER_CONFIGS.get(username, {}).get('config', cls.DEFAULT_CONFIG)
    
    @classmethod
    def verify_user(cls, username, password):
        """验证用户"""
        user_data = cls.USER_CONFIGS.get(username)
        if user_data and user_data['password'] == password:
            return True
        return False
    
    @classmethod
    def set_config_api_url(cls, api_url):
        """设置配置API地址"""
        cls.CONFIG_API_URL = api_url